<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="./vue.js"></script>
  </head>
  <body>
    <div id="app">
      <p>{{a}} + {{b}} = {{c}}</p>
      <ul>
        <li v-for="n in odd">{{n}}</li>
      </ul>
    </div>
    <script>
      new Vue({
        el: "#app",
        data: {
          a: 1,
          b: 2,
          nums: [1, 2, 3, 4, 5, 6],
        },
        // watch: {
        //   a: function (n, o) {
        //     this.c = n + this.b;
        //   },
        //   b: function (n, o) {
        //     this.c = this.a + n;
        //   },
        // },

        // 计算属性
        computed: {
          c: function () {
            return this.a + this.b;
          },
          odd: function () {
            return this.nums.filter((n) => n % 2);
          },
        },

        // 如果 c 的依赖 a和b 有任意一个变化 都会重新求值
        // 如果一个值 可以由其他值或者多个值生成派生计算 得出  那么就不应该使用data 而是使用计算属性
      });
    </script>
  </body>
</html>
